package function;

/**
 * @Description TODO
 * @Author li
 * @Date 2022/3/2 9:11 上午
 */
public class FindNumberIn2DArray {

    public static void main(String[] args) {
        int[][] matrix = new int[][]{
                {1, 4, 7, 11, 15},
                {2, 5, 8, 12, 19},
                {3, 6, 9, 16, 22},
                {10, 13, 14, 17, 24},
                {18, 21, 23, 26, 30}
        };
        test(matrix,8);
    }

    public static boolean test(int[][] matrix, int targe) {
        // 行数
        int i = matrix.length - 1;
        // 列
        int j = 0;
        // 行数大于等于0 并且列小于每一行的列
        while (i >= 0 && j < matrix[0].length) {
            // 如果当前位置的值大于指定的值 移动到上一行
            if (matrix[i][j] > targe) {
                i--;
                // 如果当前位置的值小于指定值 移动到下一列
            } else if (matrix[i][j] < targe) {
                j++;
                // 如果等于说明找到了
            } else {
                return true;
            }
        }
        return false;
    }
}
